Copyright □ 1999, by Professor Jong-Hwan Kim, Korea Advanced Institute of Science and Technology (KAIST).  All rights reserved. Reproduction or translation of any part of this work is unlawful. Request for permission or further information should be addressed to Professor Jong-Hwan Kim at <johkim@vivaldi.kaist.ac.kr> or <Tel: +82-42-869-3448>.

Prof. Jong-Hwan Kim	Intelligent Control Lab, KAIST

2. 로봇의 구조와 기구학

2.1 바퀴이동로봇이란?

이동 로봇이란 자신의 힘으로 위치를 변화시킬 수 있는 모든 로봇을 말한다. 여기에는 곤충의 모양을 한 육각 보행 로봇이나 사람의 모양을 본뜬 이족 보행 로봇에서부터 우리가 흔히 접할 수 있는 바퀴를 이용한 이동로봇까지 모든 형태를 포함한다. 로봇 축구 경기를 위한 로봇은 현재까지 모두가 바퀴 이동 로봇이며, 다른 형태의 이동로봇은 연구 중에 있다. 다음은 몇 가지 이동 로봇의 구조를 나타낸 그림이다.

(a) 양 바퀴형 구조      (b) 캐터필러형 구조        (c) 전방향형 구조

그림 2.1 여러 종류의 로봇 구동부  구조

이동 로봇의 구동부 구조에 따라서 로봇의 움직임 특성은 달라진다. 따라서 이동 로봇을 어디에 사용할 것인가에 따라 구조의 선택도 중요하다. 위의 그림에서 그림 2.1(a)는 흔히 소형 로봇에 이용되는 양 바퀴 구동형 로봇이다. 이와 같은 로봇은 부드러운 회전이 가능하며 움직임의 분석도 쉽다. 하지만 지면과 접촉하는 부분이 좁아서 미끄러짐이 크다. 두 번째 그림 2.1(b)는 캐터필러형 이동 로봇이다. 이 로봇은 직진성이 좋아, 직진시 매우 정확한 움직임을 보이지만, 회전할 경우 부드러운 움직임을 보이지 않고 앞서 언급한 것처럼 움직임의 분석이 정확하지 않다. 세 번째 그림 2.1(c)는 매우 독특한 형태의 이동 로봇이다. 이 로봇에 사용되는 바퀴는 흔히 볼수 있는 바퀴의 둘레에 작은 롤러들을 여러 개 달아놓은 형태이다. 따라서 보통의 로봇은 바퀴면에 수직 방향으로 움직일 수 없는 반면에 이 바퀴를 이용하면 자유로운 움직임이 가능하다. 이 로봇은 세 개의 바퀴를 적절히 회전하면 임의의 방향각에서 임의의 방향으로 움직일 수 있다. 이런 특징을 가진 로봇을 전방향 이동로봇(omni-directional mobile robot)이라고 부른다. 전방향 이동로봇은 앞의 양바퀴 구동형 로봇이나 캐터필러형 이동로봇에 비해서 움직임이 훨씬 자유롭지만 그 구조가 복잡해서 구현하기 어렵다. 그림 2.1(a)와 (b)의 구조는 소형 이동 로봇에 주로 이용되는 구조로 대부분의 로봇 축구팀들은 이러한 구조를 이용하고 있다.

2.2 로봇의 이동원리

그림 2.2 이동 로봇의 좌표계

바퀴 이동 로봇을 분류하기 위해서는 로봇의 움직임에 대한 분석이 먼저 이루어져야 한다. 그림 2.2는 로봇이 위치한 공간에서 나타나는 좌표이다.

위의 그림에서 X1-Y1 좌표계는 로봇 외부에 기준점을 둔 절대 좌표계이다. 그리고 X2-Y2 좌표계는 로봇의 중심점을 원점으로 하고 로봇이 향한 방향을 x축으로 하는 좌표계이다. 로봇의 구조를 분석하기 위해 다음과 같이 자세(posture) P를 정의한다.

[eqn: P `= PMATRIX { {x```}#{y```}#{theta```} `}]

여기서, x,y는 로봇의 중심점의 좌표이고, [eqn: theta``]는 로봇의 앞부분이 향하는 방향각이다. 위의 정의에서 알 수 있듯이 로봇의 자세는 절대 위치(x,y)와 로봇이 향한 방향각([eqn: theta~])으로 이루어지며, 이 세 가지 값은 로봇을 이동시킬 때 맞추어야 할 값들이다. 로봇의 구조를 분석하는 것은 궁극적으로 로봇의 구동부에 적절한 출력을 가함으로써 원하는 자세를 취하게 하기 위함이다. 이와 같이 바퀴의 회전 속도와 그에 따른 자세의 관계를 나타낸 식을 기구학식이라고 부르며, 이에 관해서는 2.3절에서 다루고자 한다.

그림 2.3 순간 회전 중심

이후에 설명할 로봇의 바퀴는 회전축이 바닥의 수직선분과 직교한다. 또한 바퀴와 바닥 사이의 접촉면에서 pure rolling과 non-slipping의 조건을 만족한다. Pure rolling은 미끄러짐이 없는 굴림 운동이라는 뜻으로 바퀴 표면의 점들이 연속적으로 바닥 표면의 점들과 일대일 접촉을 할 때를 말한다. Non-slipping은 나아가는 방향의 수직 성분으로 미끄러지지 않는다는 것을 말하며, 로봇은 이동 중 옆으로 미끄러지지 않는다는 것을 의미한다. 단, 예외적으로 뒤에서 설명하게될 Swedish wheel은 위와 같은 조건을 만족하지 않는다. Swedish wheel은 의도적으로 바퀴 면에 수직한 운동이 가능하게 만들어져 있다. 여러 개의 바퀴가 있는 로봇은 어떤 순간 회전중심을 기준으로 하여 회전 운동을 한다. 그림 2.3(a)에서처럼 바퀴의 회전축의 연장선들이 만나는 점이 순간 회전중심이 된다. 순간 회전 중심은 로봇의 구조와 그 순간의 틀어진 바퀴 각도에 따라 달라진다. 만약에 순간 회전 중심이 하나가 아닐 경우 로봇은 움직일 수 없게 된다.

그림 2.3(a)는 자동차 모양의 구조이다. 이 경우 로봇 진행방향의 왼쪽에 위치한 순간회전중심을 기준으로 해서 왼쪽으로 방향을 틀게 된다. 그림 2.3(b)는 두 개의 바퀴가 나란히 위치해 있는 경우이다. 이 경우 순간 회전 중심은 바퀴 축에 위치한 직선 어디에나 위치할 수 있다. 그 위치는 양 바퀴의 회선 속도비에 의해 결정된다. 그림 2.3(c)는 각 바퀴의 순간 회전 중심이 한 곳에 모여있지 않은 경우이다. 이런 경우 로봇은 어느 방향으로도 이동 또는 회전이 불가능하며 완전히 정지해 있다. 그림 2.3(d)는 그림 2.3(b)와 비슷한 구조이지만 두 회전축이 일치하지 않고 평행을 이루고 있다. 따라서 이 로봇은 무한히 먼 위치에 순간 회전 중심이 있는 것과 같으며, 단지 직진만을 할 수 있는 구조이다. 로봇을 제작할 때에 공간을 절약하기 위해 그림 2.3(d)와 같은 구조로 만드는 경우가 있다. 이런 경우 로봇의 바퀴는 회전할 때 언제나 조금씩 미끄러지게 되고 왼쪽과 오른쪽 회전이 대칭적이지 않게 되며 정확한 분석이 어렵게 되는 문제점이 있다.

2.3 로봇의 기구학

그림 2.4 양 바퀴 구동 로봇

로봇 축구에 주로 이용되는 구조는 그림 2.4와 같은 양바퀴 구동 로봇으로, 구조가 간단하다. 양 바퀴 구동 로봇의 기구학적인 모델은 그림 2.4로부터 얻을 수 있다.

왼쪽 바퀴와 오른쪽 바퀴의 각속도를 [eqn: omega_L``], [eqn: omega_R``]이라고 하면 non-slipping 조건에 의해 왼쪽 바퀴와 오른쪽 바퀴의 지면과의 접촉점의 속도는 다음과 같다:

[eqn: V_R = r~ omega_R``], [eqn: V_L = r~ omega_L``]	(2.1)

단,[eqn: r] 은 바퀴의 반지름

단, 로봇 중심의 선속도를 [eqn: v``]이고 [eqn: V_R], [eqn: V_L]은 각각 오른쪽, 왼쪽바퀴의 선속도이다. 반시계 방향으로의 로봇의 각속도를 [eqn: omega``]라고 하면 [eqn: v``],[eqn: omega``]와 [eqn: omega_R``],[eqn: omega_L``](오른쪽, 왼쪽바퀴의 각속도)은 다음과 같은 관계를 가진다:

[eqn: omega ~=~ { V_R - V_L } over { L} ~=~ r``` { omega_R - omega_L } over { L}].

[eqn: v ~=~ { V_R + V_L } over 2 ~=~ r````{ omega_R + omega_L } over 2]	(2.2)

여기서 L 은 양 바퀴 사이의 거리이다. [eqn: ( x~~ y~~ theta`` )^T``]와 [eqn: (` v~~ omega``` )^T``]은 다음과 같은 기구학 식에 의해 연관 관계를 가지게 된다:

[eqn: PMATRIX { {dot x```}# {dot y```} # {dot theta```}} = PMATRIX { { cos theta" "}& {0" " }# {sin theta" "}& {0" "}# {0}&{1" "} } PMATRIX { v`` # omega`` }]	(2.3)

식 (2.3)을 보면 로봇에서 제어할 수 있는 구동기는 2개인데 반해 도달해야 하는 위치 및 각도의 자유도는 3이다. 따라서 현재 로봇의 자세에서 원하는 자세로 제어할 때 제한조건이 발생한다. 바닥과 바퀴의 접촉면에서 바퀴면에 수직인 방향의 속도성분은 0이라는 non-slipping 조건을 이용하면 다음과 같은 non-holonomic 제한조건을 구할 수 있다:

[eqn: H~ CDOT dot p~ = ~ PMATRIX { {sin theta}& {-cos theta}~ } PMATRIX { {dot x```}# {dot y```}} = dot x` sin theta - dot y` cos theta = 0]	(2.4)

여기서, [eqn: H``]는 바퀴면에 수직인 단위 벡터이다.

그림 2.5 순간회전중심의 계산

제한조건은 식 (2.4)와 같이 되며, 이것은 [eqn: tan theta" " = dot y~ / dot x] 와 같이 정리될 수 있다. 이것은 로봇의 순간 진행방향은 로봇이 향하고 있는 각도[eqn: theta``]와 같아야 한다는 의미이다.

식 (2.4)에 나타낸 바와 같이 양 바퀴의 속도[eqn: V_L] 과[eqn: V_R] 은 그림 2.5에 표시된 순간회전중심에서의 바퀴까지의 거리 [eqn: R_1], [eqn: R_2]와 비례한다.

[eqn: V_L ~ :~ R_1 ~ = ~ V_R~ : ~ R_2]	(2.5)

식 (2.5)는 다음과 같이 정리될 수 있다:

[eqn: V_L ~ / ~( R - L over 2 ) ~ = ~ V_R~ / ~ (R + L over 2 )]	(2.6)

식 (2.6)을 정리하면 로봇의 회전 반경은 다음과 같다:

[eqn: R = L over 2 { V_R + V_L } over { V_R - V_L }]	(2.7)

식 (2.7)을 보면 로봇이 직진할 경우는 [eqn: R = INF] 일 경우이며 [eqn: V_R = V_L]일 때이다. 또한, 로봇이 제자리에서 회전하기 위해서는 [eqn: R = 0] 일 경우이며 [eqn: V_R = - V_L] 일 경우이다.

그림 2.6 양 바퀴의 속도 profile

실제 모터의 회전은 그림 2.6과 같이 가속 및 감속 구간이 있다. 만약 양 바퀴의 모터가 그림 2.6에서와 같이 양 바퀴의 가속 및 감속 시간이 같다면, 로봇은 원호를 그리면서 진행하게 된다. 이때의 이동 거리와 회전 반경, 회전한 각도는 식 (2.2)와 (2.6)으로부터 다음 식(2.8)과 같이 구할 수 있다.

그림 2.7  이동거리 및 회전각도

이동 거리 :  [eqn: D ~=~ INT _{t_0 }^{t_3 } {V_L + V_R} over 2 ~dt ~=~ 1 over 2 r` {omega_L + omega_R} over 2 ( t_3 -t_0 +t_2 -t_1 )]

회전 반경 :   [eqn: R ~=~ L over 2 { V_R + V_L } over { V_R - V_L } ~=~ L over 2 { omega_R + omega_L } over { omega_R - omega_L }]	(2.8)

회전 각도 :  [eqn: varphi ~=~ D over R ~=~ r over 2L ( omega_R - omega_L`` )( t_3 -t_0 +t_2 -t_1 )]

본 장에서는 여러 가지 로봇의 구조에 대하여 분석하였으며, 주로 사용될 양 바퀴 구동 로봇의 기구학식과 간단한 제어방법을 설명하였다. 본 장에서 다룬 것들은 로봇을 개발할 때 먼저 결정되어야 할 내용들이다. 새로운 로봇을 제작하기 전에, 로봇의 용도를 고려하여 충분한 분석과 고찰을 한 후 구조를 선택해야 할 것이다.